//长度最小的子数组
//给定一个含有 n 个正整数的数组和一个正整数 target 。
//找出该数组中满足其总和大于等于 target 的长度最小的子数组[numsl, numsl+1, ..., numsr-1, numsr] ，
// 并返回其长度。如果不存在符合条件的子数组，返回 0 。

import java.util.Scanner;

//原理:同向双指针
public class Test1 {
    public static void main(String[] args) {
        int number,target;
        Scanner in = new Scanner(System.in);
        number = in.nextInt();//数组元素个数
        target = in.nextInt();//需要判断的个数
        int[] nums = new int[number];
        for (int i = 0; i <number ; i++) {
            nums[i] = in.nextInt();
        }
        getResult(target,nums);
    }

    public static void getResult(int target,int[] nums){
        int n = nums.length;
        int len=n,sum=0,left=0,right=0;
        while (left<=right&&left<n&&right<n){
            sum+=nums[right];
            while (sum>=target){
                len = Math.min(len,right-left+1);
                sum-=nums[left];
                left++;
            }
            right++;
        }
        System.out.println(Integer.MAX_VALUE);
    }
}
